package com.casa_apoio.model.dao;

import com.casa_apoio.model.entity.Acesso;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;

public class AcessoDAO<T> extends HibernateDAO<T> {
    
    public AcessoDAO(Class<T> classe, Session session) {
        super(classe, session);
    }
    
    public void atualizarAcesso(Acesso acesso) {
        if (acesso.getPermissao() == null || acesso.getPermissao().size() == 0) {
            Acesso acessoPermissao = (Acesso) getEntity(acesso.getIdAcesso());
            acesso.setPermissao(acessoPermissao.getPermissao());
            this.session.evict(acessoPermissao);
        }
        session.update(acesso);
    }
    
    public List<Acesso> verificaLogin(String login) {
        Criterion filter = Restrictions.eq("login", login);
        Criteria criterio = criaCriteria();
        criterio.add(filter);
        List<Acesso> lista = criterio.list();
        return lista;
    }
    
    public List<Acesso> verificaFuncionarioComAcesso(Integer idFuncionario) {
        Criterion filter = Restrictions.eq("funcionario.idFuncionario", idFuncionario);
        Criteria criterio = criaCriteria();
        criterio.add(filter);
        List<Acesso> lista = criterio.list();
        return lista;
    }
    
}
